ログインできないec2インスタンスを調査する
はじめに
サーバを運用しているといろいろなことが起こります。
今回はなんらかのトラブルによりインスタンスが正常に起動しない、
ログインできなくなった場合の対応方法をご紹介します。
障害インスタンンスはAmazon LinuxでrootボリュームはEBSということで話を進めていきます。
障害インスタンスを停止する
正常に起動しない、ログインができないインスタンスをstopします。
サーバにログインできないのでマネジメントコンソールやAPIでstopします。
障害インスタンスのルートボリュームをデタッチする
ルートボリュームのEBS IDを確認してVolumesへ移動します。
・DescriptionのRoot Device 「/dev/xvda」をクリック
また後でアタッチし直すのでRoot Device名はメモしておきます。
・EBS ID をクリック
・Volumesに移動します。
・Actionsからデタッチします。
後でわからなくならないようにボリュームのNameタグに名前つけておくといいですよ。
・Yes,Detachをクリック
・StateがavailableになればOKです。
調査用のインスタンスにアタッチする
同じアベイラビリティゾーン内に調査用のインスタンスを新規に起動して
先ほどデタッチしたボリュームをアタッチします。
・Actionsからアタッチします。
・アタッチしたいインスタンスを選択します。
調査用インスタンスを選択し
Deviceは今回はそのまま「/dev/sdf」とします。
Attachをクリック
・Stateがin-useになればOKです。
調査用インスタンスにログインしてアタッチしたボリュームをマウントする
調査用のインスタンスにログインしますがこの時点ではまだアタッチしたボリュームはマウントされていません。
[ec2-user@ip-x-x-x-x ~]$ df -h ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/xvda1 7.8G 1.1G 6.7G 14% / devtmpfs 491M 64K 491M 1% /dev tmpfs 499M 0 499M 0% /dev/shm
そこで先ほどアタッチしたボリュームをマウントします。
アタッチしたデバイス名は「/dev/sdf」でした。
・「/dev/sdf」を確認してみます。
「/dev/sdf」「/dev/sdf1」はそれぞれ「/dev/xvdf」「/dev/xvdf1」のリンクになっています。
[ec2-user@ip-x-x-x-x ~]$ ll /dev/ | grep sdf lrwxrwxrwx 1 root root 4 2月 7 03:16 sdf -> xvdf lrwxrwxrwx 1 root root 5 2月 7 03:16 sdf1 -> xvdf1
・インスタンスにアタッチされたブロックデバイスを一覧を確認します。
「xvdf1」がdisk「xvdf」のパーティションです。
[ec2-user@ip-x-x-x-x ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 8G 0 disk └─xvda1 202:1 0 8G 0 part / xvdf 202:80 0 8G 0 disk └─xvdf1 202:81 0 8G 0 part
それではマウントをしていきましょう。
・マウントポイントを作成
[ec2-user@ip-x-x-x-x ~]$ sudo mkdir /mnt/ebs
・マウント
[ec2-user@ip-x-x-x-x ~]$ sudo mount /dev/xvdf1 /mnt/ebs [ec2-user@ip-x-x-x-x ~]$ df -h ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/xvda1 7.8G 1.1G 6.7G 14% / devtmpfs 491M 64K 491M 1% /dev tmpfs 499M 0 499M 0% /dev/shm /dev/xvdf1 7.8G 1.1G 6.7G 14% /mnt/ebs
調査しよう
ここまできたらあとは調査可能です。
また保存したいデータなどの復旧もできますね。
設定の修正などを行い、障害を復旧させたら元のインスタンスにアタッチします。
アンマウントしてデタッチ
・アンマウント
[ec2-user@ip-x-x-x-x ~]$ sudo umount /mnt/ebs/ [ec2-user@ip-x-x-x-x ~]$ df -h ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/xvda1 7.8G 1.1G 6.7G 14% / devtmpfs 491M 64K 491M 1% /dev tmpfs 499M 0 499M 0% /dev/shm
デタッチですが調査用インスタンスを停止してからでも起動したままでも大丈夫です。
・デタッチする
手順は先ほどと同じです。Volumesから先ほどアタッチしたボリュームを選択しDetacch Volumeをクリック
・Yes Detachをクリック
・StateがavailableになればOKです。
元のインスタンスにアタッチする
・ActionsからAttach Volumeをクリック
・インスタンスを選択
Deviceは前回デタッチした時と同じ「/dev/xvda」にしてAttachをクリック
・Statusがin-useになったらOK
元のインスタンスを起動する
無事起動しましたね。
まとめ
今回はなんらかの原因によりインスタンスが正常に起動しない、サーバへログインが行えなくなった場合の調査方法を紹介しました。また「Instance status checks」がNGの場合はドキュメントに書いてある通り自分で調査する必要がありますのでこちらの調査方法も試してみてください。
・ドキュメント「ステータスチェックでインスタンスをモニタリングする」
Instance status checksでは、個々のインスタンスのソフトウェアとネットワークの設定を監視します。これらのチェックでは、お客様が修復する必要のある問題が検出されます。インスタンスステータスチェックが失敗した場合、通常はお客様ご自身で(インスタンスの再起動、オペレーティングシステムの修正など)問題を修復する必要があります。